package com.ruoyi.web.sso.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.web.sso.domain.Area;
import com.ruoyi.web.sso.domain.DTO.AreaDTO;
import com.ruoyi.web.sso.domain.DTO.AreaListDTO;
import com.ruoyi.web.sso.domain.vo.AreaVO;
import org.apache.ibatis.annotations.Param;

/**
 * 园所信息Service接口
 * 
 * @author ruoyi
 * @date 2021-11-03
 */
public interface IAreaService 
{


    /**
     * 查询园所信息
     *
     * @param id 园所信息主键
     * @return 园所信息
     */
    public Area areaIdGetArea(String id);
    /**
     * 查询园所信息
     * 
     * @param id 园所信息主键
     * @return 园所信息
     */
    public AreaVO selectAreaById(String id);

    /**
     * 查询园所信息
     *
     * @param ids 园所信息主键
     * @return 园所信息
     */
    public List<AreaVO> selectAreaByIds(String[] ids);

    /**
     * 查询园所信息列表
     * 
     * @param area 园所信息
     * @return 园所信息集合
     */
    public List<AreaVO> selectAreaList(Area area);

    /**
     * 新增园所信息
     * 
     * @param area 园所信息
     * @return 结果
     */
    public int insertArea(Area area);

    /**
     * 修改园所信息
     * 
     * @param area 园所信息
     * @return 结果
     */
    public int updateArea(Area area);

    /**
     * 批量删除园所信息
     * 
     * @param ids 需要删除的园所信息主键集合
     * @return 结果
     */
    public int deleteAreaByIds(String ids);

    public int resetAreaRoleList(String areaId);

    /**
     * 删除园所信息信息
     * 
     * @param id 园所信息主键
     * @return 结果
     */
    public int deleteAreaById(String id);

    /**
     * 用户ID查询所属园区
     * @param staffId
     * @return
     */
    List<Area> getAreasByStaffId(String staffId);

    /**
     * 添加园区用户
     * @param mobile
     * @return
     */
    AjaxResult addStaff(String areaId, String mobile);

    List<Map<String,Object>>  areaByRoleList(String id,String roleName);

    Area getArea(String staffId);

    List<AreaDTO> areasByLocation(float lat, float lon, Integer num);

    List<AreaDTO> areasByLocationLike(String pcaCode, String pcaName);

    /**
     * 获取员工园区列表
     * @param staffId
     * @return
     */
    List<AreaListDTO> getInChargeArea(String staffId);

    List<AreaDTO>  getAllArea();

    List<AreaDTO> getAreaName(String areaName);


}
